1. Field of the Invention
The present invention relates to a distributed processing system associated with a plurality of distributed processor nodes and more particularly to a method and a system thereof for providing a message queue on a recording medium of each distributed processor node and transferring data (hereinafter referred to as a message) to be transferred between a message sender distributed processor node and a message receiver distributed processor node via this message queue.
Furthermore, the present invention belongs to a communication system for transferring a message asynchronously between a plurality of application programs (AP) on a distributed processing system via a message queue, and further relates to association with message bases, message queuing, and asynchronous storage type communication.
2. Description of the Prior Art
There are inter-program communication systems available in a conventional distributed processing system associated with a plurality of distributed processor nodes such as (1) an interactive communication system, (2) an RPC (remote procedure call) system on the basis of an X/Open distribution transaction process model, and (3) a file transfer system. The interactive communication system is a system in which a plurality of application programs (process programs) are associated with each other and a sender node notifies a receiver node of the sending of a message and sends a message when it receives a response to it. The RPC system is a system in which one application program requests a process for another application program and the process result of another application program is returned to the application program of the request source.
These communication systems are a synchronous communication systems which can communicate only when both the sender and receiver are activated at the same time. Namely, in these synchronous communication systems, it is necessary that both the sender and receiver are in operation at the same time and even if the self system is in operation, it is necessary to perform a sending process or receiving process depending on the status of the destination system.
The conventional type of information process is only a concentrated process by a main frame and a terminal. At present, however, the client server system is becoming a main system and the basis thereof is the distributed processing system. To construct a flexible and expandable system as a communication system in this distributed processing system, an example using a message queuing system for communicating asynchronously via a message queue is becoming popular rapidly.
In this case, there are characteristics of the distributed process such that standardization of an application program interface (API) is promoted, and when this API is used, development of an AP in distributed processor nodes can be realized by the same API, and the advantage of the distributed process can be obtained. Therefore, it disturbs the open distributed processing system to specify a peculiar API, so that it is necessary to avoid it.
The asynchronous storage type communication system has the aforementioned characteristics and is a communication system which is widely noticed recently for the reason that not only the system is applied to a field on the assumption of an asynchronous process such as the BPR (business process reengineering), work flow, or mobile communication field but also the program productivity is high because description of communication even in the existing communication field is easy and the API is under standardization and distributed processing systems using this system are increased mostly in Europe. This system is beginning to become popular also in Japan. Namely, a part of users are constructing such a system and many users are studying use of such a system.
As an example of this distributed processing system, there is an example of a parallel I/O network file server architecture disclosed in National Publication of PCT Patent No. 5-502525. In this example, prevention of contention between picking up an instruction by a microprocessor and transfer of a message and file data is intended.
The means for realizing the aforementioned distributed process are as shown below.
[1] Firstly, a message is stored in a logical queue which is called a queue comprising a physical file.
[2] The transfer function picks up a message connected to the queue by FIFO, and sends it to the queue of the predetermined destination, and stores it in the queue of the destination. As a sending method other than FIFO, for example, a method for sending by assigning priority or designating a specific message can be used.
[3] The queue stored in the destination queue is picked up sequentially starting from the longest connected message. It is also possible to pick up the specific message preferentially.
The queue in this system is a logical vessel which can store a message and is generally realized by a file on a magnetic disk.
There are the following two problems imposed in such a conventional queue access method.
(1) There is a limit (generally 4 GB: 2.sup.32 bytes) to the size which can be handled as a file. Therefore, when the upper limit of the size of one message which can be handled is increased (about 100 MB), the number of messages which can be registered in one queue file is necessarily reduced. Namely, in the aforementioned example, up to 40 messages can be registered.
(2) When the system registers or picks up a message, it accesses the queue file. However, during this period of time, the message locks the queue file. When the queue file is structured with a large vessel which is physically the same so as to handle voluminous data, the locking period during registration or picking up of a message is increased and if an attempt is made to pick up or register a message during this period of time, the inputs and/or outputs compete with each other, and the queue file cannot be accessed, and the application program (AP) is kept waiting.
As mentioned above, there is a limit to the size of a physical file which can be handled as a file. For example, since a size of 4 bytes is held, the upper limit is 4 GB (2.sup.32 bytes). In the conventional system, the message queue comprises a physical file. However, as the size of a message to be handled increases, a case occurs that the "size of a message.times.No. of messages" cannot be put into a file entirely. To prevent it, a plurality of message queues are defined conventionally and a plurality of message queues are realized by a plurality of queue files.
When one queue file is provided, the AP accessing this queue file locks it during storing or picking up a message, so that a problem arises that even if an attempt is made to pick up or store a message from or into the queue file, the accesses compete with each other and an I/O neck is caused. Furthermore, even if the vessel (recording medium) is made larger physically so as to handle voluminous data, a problem also arises that when the recording medium is the same, the accesses compete with each other and an I/O bottleneck is caused.